Traditionally, the process of design, prototyping, and implementation of complex industrial applications (such as manufacturing process control, multi-component devices and (such as manufacturing process control, multi-component devices and other systems or devices), has been an extremely difficult, costly and time consuming task. Typically, this process involved a long iterative, and often empirical, process, of formulating the requirements of the desired system, conceptually planning the system, developing a prototype, writing programs or other code necessary for implementation, testing the implemented prototype and then repeating many of the steps, in most cases including the arduous and frustrating coding of new programs, even when minor changes to the prototype are necessary. In cases of more serious issues, the entire system is often re-designed further consuming a great deal of time and resources. This trial and error approach of system and device design has been a challenge for engineers and designers for years.
Nevertheless, as data processing systems came into increased use in the last several decades, attempts have been made to automate and simplify at least some of the steps involved in system design, prototyping, and implementation, both for design of new systems and for modification, re-engineering and improvement of existing industrial systems. Thus, as data processing (i.e. computer) systems have gained increased utilization in the field of system and device design, a great deal of effort was directed toward providing engineers and system designers with powerful software tools that simplify the difficult goal of designing and modeling a system (e.g., industrial, computer, process control, etc.) or an apparatus (e.g., automobile exhaust system, engine, motor, etc.) in a software environment. The ultimate goal of these tools was to enable the user (e.g., the engineer) to design a software model of the desired system, simulate the model to ensure proper system operation, and hopefully assist the user in implementing the modeled system in real-world devices.
However, even with the aid of currently available powerful software tools, prototyping of a complex system or apparatus which generally requires a distributed architecture for its various operational parameters (such as an industrial process control application), it is a difficult and time consuming process with at least the following steps that must be performed by the user as part of the design to implementation cycle:
1) Design the desired target system functionality;
2) Break down the target system manually into distributed target components requiring slight modification in design, model each component and their connections separately to correspond to a real-world target device or system, and assign a portion of the desired functionality to each component, and establish connections between appropriate components;
3) Write appropriate software code to cause each component to perform their assigned functionality as well as to ensure proper communication and data interchange between various components
3) Simulate the operation of the system, testing and monitoring one component at a time; and
4) Manage the system (i.e., issue commands such as start, stop, record progress or status), one component at a time.
5) If problems occur, repeat one or more of the previous steps until the target system performs acceptably.
Because the key actions for all of the above tasks must be performed manually by the user, even with the assistance of the most powerful currently available design tools, the design-to-implementation cycle in continuous product development industries (such as automotive and aerospace industries), remains undesirably long. In addition, changes to the system architecture or to system components during the prototyping process must be manually propagated through the entire system, thus resulting in a further significant delay and expense. Furthermore, the most frustrating and difficult tasks for the user of previously known system design software tools—the second and third steps shown above—are still an ever-present requirement. Thus, the user must still engage in the manual and time-intensive partitioning of the designed system into multiple components corresponding to various real-world hardware systems and writing a great deal of code each time a change to any aspect of the system must be made (e.g., moving an element of a model to a different partition to relieve the load on a target component), but now utilizing an attractive graphical user interface to do so.
The above issues are due at least in part to the fact that the great deal of the advancements in the system design and modeling tools have been directed to improvements of preliminary system design capabilities, for example to provide users with innovative and easy to use graphical design tools, to enable visual concept-to-design model development, and to otherwise shorten the concept-to-design cycles, to enable improved computerized design simulation. Others directed their research and development to offering improvements and innovations in hardware target components, resulting in relatively inexpensive and powerful embedded system target components that may be utilized to emulate real-world physical components or that may be used as production target components themselves. Accordingly, the area between the two has been largely neglected or ignored.
However, virtually all of the above challenges and problems, and other drawbacks of all previously known design, modeling and prototyping systems have been advantageously remedied by a novel automated rapid design, prototyping, and implementation (hereinafter “IRMM”) system, disclosed in a commonly assigned co-pending U.S. Patent Application entitled ‘SYSTEM AND METHOD FOR RAPID DESIGN, PROTOTYPING, AND IMPLEMENTATION OF DISTRIBUTED SCALABLE ARCHITECTURE FOR TASK CONTROL AND AUTOMATION’, filed concurrently herewith, and hereby incorporated by reference herein in its entirety (hereinafter the “RDPI system”) that gives its user the ability to quickly and easily move from a designed visual model of a task control and/or performance system or apparatus, (that may be created with any form of readily available visual design and/or modeling tools, to a real-time interactive prototype model representative of the actual desired real-world system or apparatus (hereinafter “target system”). The user may then utilize the IRMM system to automatically generate and/or assemble any executable instruction modules and necessary support modules based on the prototype model, and then direct the modules to a physical real-world target system, corresponding to the prototype model, to implement the designed task performance system or apparatus for desired utilization.
While the above-incorporated novel IRMM system has numerous advantages over all previously know approaches, it does not in itself provide a solution to one of the greatest challenges facing not only the developers of task performance systems and devices, but also those who operate, maintain, troubleshoot and work with existing complex task performance systems—the ability to control and monitor (locally and/or remotely) the operation of an entire remote task performance system (whether a system in development or an existing working system) or a device, remotely in real time without any loss of system-related information by the monitoring/managing user. The secondary challenge of providing an easy to use customizable interface for simultaneously monitoring and managing various aspects of a remote system during its operation has likewise gone substantially unanswered.
There have been many techniques and attempted solutions that attempted to provide these capabilities, especially as part of a design and/or prototyping process. For example the U.S. Pat. No. 6,763,395 to Austin, claims to provide the capability of viewing live data generated during operation of a remote instrumentation or control system. However, the Austin system provides that capability only for viewing the live feed for one component of the remote system at a time. Most other approaches suffer from similar limitations.
Furthermore, the majority of existing system design and development tools are generally limited to utilization in the field of embedded system or industrial process control design and thus even their limited “one-at-a-time” remote monitoring/management features cannot be readily used for monitoring in other forms of task performance systems or devices.
One of the reasons for the above challenges, is that most types of systems from which real-time data must be gathered, when used in conjunction with conventional monitoring/management tools, must stop recording data while they collect and transmit data that has been recently collected. In addition, most previously known monitoring/management solutions are concerned with the user working with a single task performance system, with only complex, expensive and proprietary tools being capable of simultaneously working with many systems. Yet another problem faced by previously know systems is that certain task performance systems have limited capacity to continuously record data without interruption, and require significant modification or enhancement to enable even short term real-time data collection.
Finally, the design of graphical user interfaces for system monitoring and control using currently available tools is still a relatively arduous process, not as much in terms of designing the graphical portions of GUIs, but in building GUIs to monitor/manage specific systems. This may be problematic in system development applications where monitoring/management requirements can change quickly, necessitating constant time-consuming GUI re-design.
It would thus be desirable to provide a system and method for enabling a user to quickly and easily generate a customizable GUI for monitoring and/or management of a task performance system based only on the minimum data representative thereof. It would also be desirable to provide a system and method that may be used as a monitoring and/or management GUI design tool by itself or in conjunction with existing visual system design tools for rapid and inexpensive design, prototyping, re-design, scaling, modification, and/or testing of task performance systems. It would further be desirable to provide a system and method for enabling real-time transfer of data from a task performance system without any loss of data.